using System;
using System.Collections.Generic;
using System.Windows.Forms;
using roster.Domain;

namespace roster.UI
{
    public interface IRosterView
    {
        event EventHandler Closed;
        event MethodInvoker AddPlayer;
        event Action<IPlayer> Remove;
        event Action<IPlayer> MoveUp;
        event Action<IPlayer> MoveDown;
        event Action<IEnumerable<IPlayer>> CreateRaid;
        event Action<string> CreateRaidFromFile;
        event Action<string> LoadRoster;
        event Action<string> SaveRoster;
        event MethodInvoker Randomize;
        string Title { get; set; }
        void SelectPlayer(IPlayer player);
        void UpdateView(IEnumerable<IPlayer> players);
        void Show();
        void HideView();
        event MethodInvoker CreateRoster;
        void EnableAction();
    }
}